from __clrclasses__.System import IntPtr as _n_0_t_0
from __clrclasses__.System import Guid as _n_0_t_1
from __clrclasses__.System import Byte as _n_0_t_2
from __clrclasses__.System import Array as _n_0_t_3
from __clrclasses__.System import Enum as _n_0_t_4
from __clrclasses__.System import IComparable as _n_0_t_5
from __clrclasses__.System import IFormattable as _n_0_t_6
from __clrclasses__.System import IConvertible as _n_0_t_7
from __clrclasses__.System import ValueType as _n_0_t_8
from __clrclasses__.System.Reflection import FieldAttributes as _n_1_t_0
from __clrclasses__.System.Reflection import ParameterAttributes as _n_1_t_1
import typing
class ISymbolBinder():
    def GetReader(self, importer: int, filename: str, searchPath: str) -> ISymbolReader:...
class ISymbolBinder1():
    def GetReader(self, importer: _n_0_t_0, filename: str, searchPath: str) -> ISymbolReader:...
class ISymbolDocument():
    @property
    def CheckSumAlgorithmId(self) -> _n_0_t_1:"""CheckSumAlgorithmId { get; } -> Guid"""
    @property
    def DocumentType(self) -> _n_0_t_1:"""DocumentType { get; } -> Guid"""
    @property
    def HasEmbeddedSource(self) -> bool:"""HasEmbeddedSource { get; } -> bool"""
    @property
    def Language(self) -> _n_0_t_1:"""Language { get; } -> Guid"""
    @property
    def LanguageVendor(self) -> _n_0_t_1:"""LanguageVendor { get; } -> Guid"""
    @property
    def SourceLength(self) -> int:"""SourceLength { get; } -> int"""
    @property
    def URL(self) -> str:"""URL { get; } -> str"""
    def FindClosestLine(self, line: int) -> int:...
    def GetCheckSum(self) -> _n_0_t_3[_n_0_t_2]:...
    def GetSourceRange(self, startLine: int, startColumn: int, endLine: int, endColumn: int) -> _n_0_t_3[_n_0_t_2]:...
class ISymbolDocumentWriter():
    def SetCheckSum(self, algorithmId: _n_0_t_1, checkSum: _n_0_t_3[_n_0_t_2]):...
    def SetSource(self, source: _n_0_t_3[_n_0_t_2]):...
class ISymbolMethod():
    @property
    def RootScope(self) -> ISymbolScope:"""RootScope { get; } -> ISymbolScope"""
    @property
    def SequencePointCount(self) -> int:"""SequencePointCount { get; } -> int"""
    @property
    def Token(self) -> SymbolToken:"""Token { get; } -> SymbolToken"""
    def GetNamespace(self) -> ISymbolNamespace:...
    def GetOffset(self, document: ISymbolDocument, line: int, column: int) -> int:...
    def GetParameters(self) -> _n_0_t_3[ISymbolVariable]:...
    def GetRanges(self, document: ISymbolDocument, line: int, column: int) -> _n_0_t_3[int]:...
    def GetScope(self, offset: int) -> ISymbolScope:...
    def GetSequencePoints(self, offsets: _n_0_t_3[int], documents: _n_0_t_3[ISymbolDocument], lines: _n_0_t_3[int], columns: _n_0_t_3[int], endLines: _n_0_t_3[int], endColumns: _n_0_t_3[int]):...
    def GetSourceStartEnd(self, docs: _n_0_t_3[ISymbolDocument], lines: _n_0_t_3[int], columns: _n_0_t_3[int]) -> bool:...
class ISymbolNamespace():
    @property
    def Name(self) -> str:"""Name { get; } -> str"""
    def GetNamespaces(self) -> _n_0_t_3[ISymbolNamespace]:...
    def GetVariables(self) -> _n_0_t_3[ISymbolVariable]:...
class ISymbolReader():
    @property
    def UserEntryPoint(self) -> SymbolToken:"""UserEntryPoint { get; } -> SymbolToken"""
    def GetDocument(self, url: str, language: _n_0_t_1, languageVendor: _n_0_t_1, documentType: _n_0_t_1) -> ISymbolDocument:...
    def GetDocuments(self) -> _n_0_t_3[ISymbolDocument]:...
    def GetGlobalVariables(self) -> _n_0_t_3[ISymbolVariable]:...
    def GetMethod(self, method: SymbolToken, version: int) -> ISymbolMethod:...
    def GetMethod(self, method: SymbolToken) -> ISymbolMethod:...
    def GetMethodFromDocumentPosition(self, document: ISymbolDocument, line: int, column: int) -> ISymbolMethod:...
    def GetNamespaces(self) -> _n_0_t_3[ISymbolNamespace]:...
    def GetSymAttribute(self, parent: SymbolToken, name: str) -> _n_0_t_3[_n_0_t_2]:...
    def GetVariables(self, parent: SymbolToken) -> _n_0_t_3[ISymbolVariable]:...
class ISymbolScope():
    @property
    def EndOffset(self) -> int:"""EndOffset { get; } -> int"""
    @property
    def Method(self) -> ISymbolMethod:"""Method { get; } -> ISymbolMethod"""
    @property
    def Parent(self) -> ISymbolScope:"""Parent { get; } -> ISymbolScope"""
    @property
    def StartOffset(self) -> int:"""StartOffset { get; } -> int"""
    def GetChildren(self) -> _n_0_t_3[ISymbolScope]:...
    def GetLocals(self) -> _n_0_t_3[ISymbolVariable]:...
    def GetNamespaces(self) -> _n_0_t_3[ISymbolNamespace]:...
class ISymbolVariable():
    @property
    def AddressField1(self) -> int:"""AddressField1 { get; } -> int"""
    @property
    def AddressField2(self) -> int:"""AddressField2 { get; } -> int"""
    @property
    def AddressField3(self) -> int:"""AddressField3 { get; } -> int"""
    @property
    def AddressKind(self) -> SymAddressKind:"""AddressKind { get; } -> SymAddressKind"""
    @property
    def Attributes(self) -> object:"""Attributes { get; } -> object"""
    @property
    def EndOffset(self) -> int:"""EndOffset { get; } -> int"""
    @property
    def Name(self) -> str:"""Name { get; } -> str"""
    @property
    def StartOffset(self) -> int:"""StartOffset { get; } -> int"""
    def GetSignature(self) -> _n_0_t_3[_n_0_t_2]:...
class ISymbolWriter():
    def Close(self):...
    def CloseMethod(self):...
    def CloseNamespace(self):...
    def CloseScope(self, endOffset: int):...
    def DefineDocument(self, url: str, language: _n_0_t_1, languageVendor: _n_0_t_1, documentType: _n_0_t_1) -> ISymbolDocumentWriter:...
    def DefineField(self, parent: SymbolToken, name: str, attributes: _n_1_t_0, signature: _n_0_t_3[_n_0_t_2], addrKind: SymAddressKind, addr1: int, addr2: int, addr3: int):...
    def DefineGlobalVariable(self, name: str, attributes: _n_1_t_0, signature: _n_0_t_3[_n_0_t_2], addrKind: SymAddressKind, addr1: int, addr2: int, addr3: int):...
    def DefineLocalVariable(self, name: str, attributes: _n_1_t_0, signature: _n_0_t_3[_n_0_t_2], addrKind: SymAddressKind, addr1: int, addr2: int, addr3: int, startOffset: int, endOffset: int):...
    def DefineParameter(self, name: str, attributes: _n_1_t_1, sequence: int, addrKind: SymAddressKind, addr1: int, addr2: int, addr3: int):...
    def DefineSequencePoints(self, document: ISymbolDocumentWriter, offsets: _n_0_t_3[int], lines: _n_0_t_3[int], columns: _n_0_t_3[int], endLines: _n_0_t_3[int], endColumns: _n_0_t_3[int]):...
    def Initialize(self, emitter: _n_0_t_0, filename: str, fFullBuild: bool):...
    def OpenMethod(self, method: SymbolToken):...
    def OpenNamespace(self, name: str):...
    def OpenScope(self, startOffset: int) -> int:...
    def SetMethodSourceRange(self, startDoc: ISymbolDocumentWriter, startLine: int, startColumn: int, endDoc: ISymbolDocumentWriter, endLine: int, endColumn: int):...
    def SetScopeRange(self, scopeID: int, startOffset: int, endOffset: int):...
    def SetSymAttribute(self, parent: SymbolToken, name: str, data: _n_0_t_3[_n_0_t_2]):...
    def SetUnderlyingWriter(self, underlyingWriter: _n_0_t_0):...
    def SetUserEntryPoint(self, entryMethod: SymbolToken):...
    def UsingNamespace(self, fullName: str):...
class SymAddressKind(_n_0_t_4, _n_0_t_5, _n_0_t_6, _n_0_t_7):
    BitField: int
    ILOffset: int
    NativeOffset: int
    NativeRegister: int
    NativeRegisterRegister: int
    NativeRegisterRelative: int
    NativeRegisterStack: int
    NativeRVA: int
    NativeSectionOffset: int
    NativeStackRegister: int
    value__: int
class SymbolToken(_n_0_t_8):
    def __init__(self, val: int) -> SymbolToken:...
    def GetToken(self) -> int:...
class SymDocumentType(object):
    Text: int
    def __init__(self) -> SymDocumentType:...
class SymLanguageType(object):
    Basic: int
    C: int
    Cobol: int
    CPlusPlus: int
    CSharp: int
    ILAssembly: int
    Java: int
    JScript: int
    MCPlusPlus: int
    Pascal: int
    SMC: int
    def __init__(self) -> SymLanguageType:...
class SymLanguageVendor(object):
    Microsoft: int
    def __init__(self) -> SymLanguageVendor:...
